perm filename LIES[DOC,AIL]18 blob sn#327036 filedate 1978-01-13 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	This is a list of known bugs in the August 1976 Sail manual, AIM-289.
C00006 ENDMK
C⊗;
This is a list of known bugs in the August 1976 Sail manual, AIM-289.

PAGE			DESCRIPTION
abstr.	"varaiables" is a misspelling	[JFR 10-22-76]

iiiL	no period after LEAP (line 6 of paragraph)	[LES 10-22-76]

162L	"i.e" in the line "2. Recursive entry"	[JFR 10-23-76]

1R	"Nauer" for "Naur" (also References)	[JFR 11-2-76]

22L,26L	"disjunct" → "conjunct"			[JMC 11-12-76]

31L	line -9 "its" → "it's"			[JMC 11-12-76]

162R	The word PDA+'13 contains something other than indicated.
	The parameter descriptor words actually start at PDA+'14,
	but the way to find them is to follow the pointer in
	the right half of PDA+7.		[JFR 12-9-76]

9L	Another restriction on SIMPLE procedures: They should not do
	up-level addressing themselves (in addition to point 4.) unless
	the user really understands what is going on with the stack.
	It is possible to "screw up" without complaints from the compiler.
	SIMPLE ought to mean "I know what I am doing, so let me do it.".
	[JFR/DON 12-xx-76]

56L	CRLF="('15 & '12)", not '12 & '15	[JFR 1-15-77]

10R	It should be made clear that  LET A=B;  works even if
	A is a reserved word.  In particular, LET DEFINE=REDEFINE;
	Also note that B can be any reserved
	word except COMMENT. [COMMENT ALWAYS means "ignore through
	the next semicolon".]

4R	POLLING_POINTS is not a valid <require_spec>	[WFW 1-21-77]

50R	In FILEINFO, hidate2 occupies 3 bits	[JFR 2-3-77]

152L	CHNCDB and FILEINFO are defined everywhere except TENEX.  [JFR 2-3-77]

65R	A better way of getting around the array problem is as follows:

	REQUIRE "⊂⊃<>" DELIMITERS;

	DEFINE NewArray(type,name,bounds)=⊂
		BEGIN
		type ARRAY proxy bounds;
		MEMORY[LOCATION(name)] ← MEMORY[LOCATION(proxy)];
		MEMORY[LOCATION(proxy)] ← 0;
		END⊃;

	which hides all the hair of a poor facility and is perfectly general.
	unlike the present scheme in the manual. A typical call would be:

	RECORD_CLASS RC(STRING ARRAY SA);
	RECORD_POINTER (RC) rp;

	rp ← NEW_RECORD(RC);
	NewArray(STRING,RC:SA[rp],[0:1,-2:3]); [MWK for KS 01-13-77]

27L	DIV and MOD use integer divide and are meant as a "integer divide"
	and "integer divide and remainder". This is NOT the real mod as 
	written in Knuth volume 1. In fact, MOD would better have been
	names REM. [MWK 01-13-77]